package fiuba.algo3.modelo.mapa;

import java.util.ArrayList;

import fiuba.algo3.modelo.factorVial.Obstaculo;
import fiuba.algo3.modelo.factorVial.Sorpresa;

public class Calle {

	private Cruce unCruce;
	private Cruce otroCruce;
	
	private Obstaculo obstaculo;
	private Sorpresa sorpresa;
	
	//solo se usa en tests
	public Calle(){

	}
	
	public Calle(Cruce unCruce, Cruce otroCruce){
		this.unCruce = unCruce;
		this.otroCruce = otroCruce;
		this.sorpresa = null;
		this.obstaculo = null;
	}
	
	//solo se usa en tests
	public Calle(Cruce unCruce, Cruce otroCruce, Obstaculo obstaculo, Sorpresa sorpresa){
		this.unCruce = unCruce;
		this.otroCruce = otroCruce;
		this.obstaculo = obstaculo;
		this.sorpresa = sorpresa;
	}
	
	public Obstaculo getObstaculo(){
		return this.obstaculo;
	}
	
	public Sorpresa getSorpresa(){
		return this.sorpresa;
	}
	
	//solo se usa en tests
	public ArrayList<Cruce> getCruces() {
		ArrayList<Cruce> cruces = new ArrayList<Cruce>();
		cruces.add(unCruce);
		cruces.add(otroCruce);
		return cruces;
	}

	public Cruce getCruceDestino(Cruce cruceOrigen){
		if (cruceOrigen == unCruce) return otroCruce;
		return unCruce;
	}

	//solo se usa en tests
	public boolean existeDestino(Cruce cruceInicial){
		if (unCruce == null) return false;
		if (otroCruce == null) return false;
		return true;
	}
	
	public void setObstaculo(Obstaculo obstaculo){
		this.obstaculo = obstaculo;
	}

	public void setSorpresa(Sorpresa sorpresa){
		this.sorpresa = sorpresa;
	}
	
	public void eliminarSorpresa(){
		this.sorpresa = null;
	}
}
